/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.caelum.project.controller;

import br.com.caelum.project.dao.ProdutoDAO;
import br.com.caelum.project.model.Produto;
import br.com.caelum.vraptor.Resource;
import br.com.caelum.vraptor.Result;
import java.util.ArrayList;
import java.util.List;

/**
 *
 * @author dyguilherme
 */
@Resource
public class ProdutoController {

    private ProdutoDAO dao;
    private Result result;

    public ProdutoController(ProdutoDAO dao, Result result) {
        this.dao = dao;
        this.result = result;
    }

    public List<Produto> lista() {
        List<Produto> produtos = new ArrayList<Produto>();
        //ProdutoDAO dao = new ProdutoDAO(new HibernateUtil().getSession());
        produtos = dao.listaTudo();
        return produtos;
    }

    public void adiciona(Produto produto) {
        dao.salva(produto);
        result.redirectTo(ProdutoController.class).lista();
    }

    public Produto edita(Long id) {
        return this.dao.procura(id);
    }

    public void altera(Produto produto) {
        this.dao.atualiza(produto);
        this.result.redirectTo(ProdutoController.class).lista();
    }

    public void remove(Long id) {
        Produto produto = this.dao.procura(id);
        this.dao.remove(produto);
        this.result.redirectTo(ProdutoController.class).lista();
    }

    public void formulario() {
    }

}
